package br.com.sgi.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.sgi.dao.MembroDao;
import br.com.sgi.model.Membro;
import br.com.sgi.service.MembroService;
import br.com.sgi.vo.MembroVo;

@Service("membroService")
public class MembroServiceImpl implements MembroService {

	@Autowired
	private MembroDao membroDao;
	
	public void salvar(Membro membro) {
		membroDao.save(membro);
	}

	@Override
	public List<Membro> buscarMembrorPorParametros(MembroVo membroVo) {
		 Map<String, Object>  params = new java.util.HashMap<String, Object>();
		
		StringBuffer sql =  new StringBuffer();
		
		sql.append(" FROM Membro m ");
		sql.append(" WHERE 1 = 1");
		if(membroVo != null){
			
			if(membroVo.getNome() != null && !membroVo.getNome().isEmpty()){
				
				sql.append(" m.nome like :nome ");
				params.put("nome","%" + membroVo.getNome() + "%");
				
			}
			
			if(membroVo.getMatricula() != null && !membroVo.getMatricula().isEmpty()){
				
				sql.append(" m.matricula :matricula ");
				params.put("matricula",membroVo.getMatricula());
				
			}
		
			if(membroVo.getDtNascimento() != null){
				
				sql.append(" m.dtNascimento :dtNascimento ");
				params.put("dtNascimento",membroVo.getDtNascimento());
				
			}
		
			
			
		}
		return membroDao.findByNativeQuery(sql.toString(), params);
	}

	@Override
	public List<Membro> buscarTodosMembros() {
		return membroDao.findAll();
	}

	
	
}
